package blog.dao;

import java.util.List;

import blog.entities.User;

public interface UserDao {
	User getUser(String username, String password);
	List<User> getUserList();
	
	/**
	 * 注册用户,需要提供用户名和密码
	 * @param username 提供的用户名
	 * @param password 提供的密码
	 * @return 已更新的行数
	 */
	int registerUser(String username,String password);
	
	/**
	 * 根据Key(代表数据库表字段,代表数据库select时where过滤表达式左值)
	 * 和value(代表数据库select时where过滤表达式右值)获取用户信息
	 * 获取用户
	 * @param params 传入的格式为KEY1,VALUE1,KEY2,VALUE2,...
	 * @return
	 */
	List<User> getUserByCondition(Object... params);
	
	/**
	 * 根据Key(代表数据库表字段,代表数据库select时where过滤表达式左值)
	 * 和value(代表数据库select时where过滤表达式右值)
	 * 删除用户(通过更新delete_status=1)
	 * @param params 传入的格式为KEY1,VALUE1,KEY2,VALUE2,...
	 * @return 已更新的行数
	 */
	int deleteUserByCondition(Object... params);
	
	/**
	 *  根据Key(代表数据库表字段,代表数据库select时where过滤表达式左值)
	 * 和value(代表数据库select时where过滤表达式右值)
	 * 增加用户
	 * @param params 传入的格式为KEY1,VALUE1,KEY2,VALUE2,...
	 * @return 
	 */
	int addUser(Object... params);
	
	/**
	 * 
	 * @param id 用户Id
	 * @param params
	 * @return
	 */
	int updateUser(int id,Object... params);
	
	int updateUserByCondition(int id, String key, String value);
}

